1 module directx.dxgitype; 2 // 3 // Copyright (C) Microsoft. All rights reserved. 4 // 5 6 version(Windows): 7 8 public import directx.dxgiformat; 9 10 import directx.win32; 11 import directx.d3dcommon; 12 13 enum _FACDXGI = 0x87a; 14 15 HRESULT MAKE_DXGI_HRESULT(T)(T code) { 16 return MAKE_HRESULT(1, _FACDXGI, code); 17 } 18 19 HRESULT MAKE_DXGI_STATUS(T)(T code) { 20 return MAKE_HRESULT(0, _FACDXGI, code); 21 } 22 23 // DXGI error messages have moved to winerror.h 24 enum DXGI_STATUS_OCCLUDED = MAKE_DXGI_STATUS(1); 25 enum DXGI_STATUS_CLIPPED = MAKE_DXGI_STATUS(2); 26 enum DXGI_STATUS_NO_REDIRECTION = MAKE_DXGI_STATUS(4); 27 enum DXGI_STATUS_NO_DESKTOP_ACCESS = MAKE_DXGI_STATUS(5); 28 enum DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE = MAKE_DXGI_STATUS(6); 29 enum DXGI_STATUS_MODE_CHANGED = MAKE_DXGI_STATUS(7); 30 enum DXGI_STATUS_MODE_CHANGE_IN_PROGRESS = MAKE_DXGI_STATUS(8); 31 32 enum DXGI_ERROR_INVALID_CALL = MAKE_DXGI_HRESULT(1); 33 enum DXGI_ERROR_NOT_FOUND = MAKE_DXGI_HRESULT(2); 34 enum DXGI_ERROR_MORE_DATA = MAKE_DXGI_HRESULT(3); 35 enum DXGI_ERROR_UNSUPPORTED = MAKE_DXGI_HRESULT(4); 36 enum DXGI_ERROR_DEVICE_REMOVED = MAKE_DXGI_HRESULT(5); 37 enum DXGI_ERROR_DEVICE_HUNG = MAKE_DXGI_HRESULT(6); 38 enum DXGI_ERROR_DEVICE_RESET = MAKE_DXGI_HRESULT(7); 39 enum DXGI_ERROR_WAS_STILL_DRAWING = MAKE_DXGI_HRESULT(10); 40 enum DXGI_ERROR_FRAME_STATISTICS_DISJOINT = MAKE_DXGI_HRESULT(11); 41 enum DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE = MAKE_DXGI_HRESULT(12); 42 enum DXGI_ERROR_DRIVER_INTERNAL_ERROR = MAKE_DXGI_HRESULT(32); 43 enum DXGI_ERROR_NONEXCLUSIVE = MAKE_DXGI_HRESULT(33); 44 enum DXGI_ERROR_NOT_CURRENTLY_AVAILABLE = MAKE_DXGI_HRESULT(34); 45 enum DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED = MAKE_DXGI_HRESULT(35); 46 enum DXGI_ERROR_REMOTE_OUTOFMEMORY = MAKE_DXGI_HRESULT(36); 47 48 struct DXGI_RGB 49 { 50 float Red; 51 float Green; 52 float Blue; 53 } 54 55 struct DXGI_RGBA { 56 float r; 57 float g; 58 float b; 59 float a; 60 } 61 62 struct DXGI_GAMMA_CONTROL 63 { 64 DXGI_RGB Scale; 65 DXGI_RGB Offset; 66 DXGI_RGB[ 1025 ] GammaCurve; 67 } 68 69 struct DXGI_GAMMA_CONTROL_CAPABILITIES 70 { 71 int ScaleAndOffsetSupported; 72 float MaxConvertedValue; 73 float MinConvertedValue; 74 uint NumGammaControlPoints; 75 float[1025] ControlPointPositions; 76 } 77 78 struct DXGI_RATIONAL 79 { 80 uint Numerator; 81 uint Denominator; 82 } 83 84 alias DXGI_MODE_SCANLINE_ORDER = int; 85 enum : DXGI_MODE_SCANLINE_ORDER 86 { 87 DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0, 88 DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 1, 89 DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2, 90 DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3 91 } 92 93 alias DXGI_MODE_SCALING = int; 94 enum : DXGI_MODE_SCALING 95 { 96 DXGI_MODE_SCALING_UNSPECIFIED = 0, 97 DXGI_MODE_SCALING_CENTERED = 1, 98 DXGI_MODE_SCALING_STRETCHED = 2 99 } 100 101 alias DXGI_MODE_ROTATION = int; 102 enum : DXGI_MODE_ROTATION 103 { 104 DXGI_MODE_ROTATION_UNSPECIFIED = 0, 105 DXGI_MODE_ROTATION_IDENTITY = 1, 106 DXGI_MODE_ROTATION_ROTATE90 = 2, 107 DXGI_MODE_ROTATION_ROTATE180 = 3, 108 DXGI_MODE_ROTATION_ROTATE270 = 4 109 } 110 111 struct DXGI_MODE_DESC 112 { 113 uint Width; 114 uint Height; 115 DXGI_RATIONAL RefreshRate; 116 DXGI_FORMAT Format; 117 DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; 118 DXGI_MODE_SCALING Scaling; 119 } 120 121 // The following values are used with DXGI_SAMPLE_DESC::Quality: 122 enum DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN = 0xffffffff; 123 enum DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN = 0xfffffffe; 124 125 struct DXGI_SAMPLE_DESC 126 { 127 uint Count; 128 uint Quality; 129 } 130 131 alias DWORD DXGI_COLOR_SPACE_TYPE; 132 enum : DXGI_COLOR_SPACE_TYPE 133 { 134 DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0, 135 DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1, 136 DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2, 137 DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3, 138 DXGI_COLOR_SPACE_RESERVED = 4, 139 DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5, 140 DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6, 141 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7, 142 DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8, 143 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9, 144 DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10, 145 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11, 146 DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF 147 } 148 149 struct DXGI_JPEG_DC_HUFFMAN_TABLE 150 { 151 BYTE[12] CodeCounts; 152 BYTE[12] CodeValues; 153 } 154 155 struct DXGI_JPEG_AC_HUFFMAN_TABLE 156 { 157 BYTE[16] CodeCounts; 158 BYTE[162] CodeValues; 159 } 160 161 struct DXGI_JPEG_QUANTIZATION_TABLE 162 { 163 BYTE[64] Elements; 164 }